The present invention relates to methods and apparatus for processing session data within a computer network. More specifically, it relates to mechanisms for performing network address translation on session data transmitted within such computer network.
Session Border Controllers (SBC's) are becoming increasingly popular for facilitating devices on either sides of the Session Border Controllers to remain unaware of each others' existence, particularly in Session Initiation Protocol (SIP) deployments whereby the inside user-agents (UAs) are configured with the SBC's inside-address as its proxy/registrar address and directs all signaling traffic to the SBC, which in turn ensures that this traffic reaches the actual proxy/registrar (as configured in its database) and vice-versa.
There are solutions like IP-IP GW that terminate and regenerate sessions at the SBC. When a call signaling packet is received from a first endnode at the SBC, the SBC performs several operations that require a significant amount of resources, especially as the number of sessions handled by such SBC increases. For each call signaling flow, the SBC closes and manages the stack associated with the session that is conducted between the first endnode and the SBC and also creates and manages a new stack for the session that is conducted between the SBC and the second endnode. That is, another socket needs to be opened for the session between the SBC and the second node.
Another problem with the typical SBC arrangement is that each endnode may be associated with a router having NAT (network address translation) capability. For instance a user may have their own home network router with NAT. In a session based flow, addresses are often utilized in a session data's payload, as well as the header. Accordingly, mechanisms for handling embedded addresses would have to be deployed in each endnode's individual router. Such a mechanism is typically referred to as an application level gateway (ALG) that is configured to handle a particular application's payload format. Since each application requires a custom ALG to handle the differently formatted payloads, employment of ALG's in each endnode's router would entail significant overhead.
Another problem with conventional SBC schemes occurs when an endnode's expiration time for timing out of its session differs from the expiration time desired by the registrar server. Currently, no mechanisms exist for handling disparate expiration times. Currently, the SBC merely sends refresh messages from each endnode to the registrar based on such endnode's configured expiration time. The frequency of such refresh messages may be undesirably high for the Registrar, especially when the number of endnodes is high. A high frequency of refresh packets may cause the registrar to become overloaded and operate inefficiently or even lockup.
Accordingly, improved mechanisms for managing sessions through an SBC without requiring termination and regeneration of session would be beneficial. Additionally, it would be desirable that such session management schemes would reduce or eliminate the need for an endnode's associated router to handle embedded addresses, and would also handle disparate expiration times between an endnode and a registrar device.